import java.util.Arrays;

public class MyStack {
    int[] array;
    //数组实现
    int size;
    public MyStack(){
        array = new int[3];
        //默认初始化容量为3
    }
    public int push(int e){
        ensureCapacity();//检查是否需要扩容
        array[size++] = e;
        return e;
    }
    public int pop(){
        //从栈顶弹出元素
        int e = peek();
        size--;
        return e;
    }
    public int peek(){
        //只查看栈顶的元素 不弹出
        if(empty()){
            throw new RuntimeException("栈为空，无法获取栈顶元素");
        }
        return array[size-1];
    }
    public int size(){
        //获取栈的大小
        return size;
    }
    public boolean empty(){
        //判断栈是否为空
        return 0 == size;
    }
    private void ensureCapacity(){
        //扩容函数
        if(size == array.length){
            array = Arrays.copyOf(array, size*2);
        }
    }
}